home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / fish / 726-750 / 740 / hdmem / hdmem.doc < prev    next >
Text File  |  1995-03-18  |  10KB  |  221 lines

  1. ›[0m›[0 p                       ›[32;40m------------------------------------›[0m
  2.     ›[33;40m                  ›[32;40mHDMem - virtual memory for the AMIGA›[0m
  3.     ›[33;40m                  ›[32;40m------------------------------------›[0m
  4.  
  5.                          ›[33;40mcopyright 1992 by Stefan Rompf›[0m
  6.  
  7.  
  8.        Nobody has  enough RAM, whatever he does on his Amiga - if you want
  9.     to  run several applications using the multitasking capability - or if
  10.     you simply have one program which requires a lot more memory than  you
  11.     have. So you extend your Amiga's RAM as much as possible till a the
  12.     day you take a look at your bank account.....
  13.  
  14.        The problem is that one meg still costs about DM 70 and  you  don't
  15.     need a calculator to know what you must pay ten or even twenty megaby­
  16.     tes.  Even  worse  is that these lots of memory are only used for some
  17.     special cases and will stay empty most of the time (I know  this  well
  18.     one  my  seven MB 68030-Amiga). That's when virtual memory becoms use­
  19.     ful.
  20.  
  21.        But - what the hell IS virtual memory? Well, it means that you  can
  22.     use more ram than your computer actually has. To make things more sim­
  23.     ple:  A  part  of  your harddisk will be used as random access memory,
  24.     applications can store their data there without  allocating  real  me­
  25.     mory.
  26.  
  27.        Technically virtual memory is always  handled  the  following  way,
  28.     even  by my HDMem software: A block of your real RAM will be reserved.
  29.     Then, when somebody tries to access the virtual memory, the MMU of yo­
  30.     ur 68030 will cause an exception. My HDMem server intercepts this  ex­
  31.     ception  and  loads  a  block  which contains the needed byte, word or
  32.     longword to the reserved RAM. The MMU tree will  be  changed  so  that
  33.     the access now maps to there.
  34.  
  35.        HDMem uses a hard disk file for its data. It works with 32K blocks.
  36.     When you start HDMem, you can select the size of the file in 32K-steps
  37.     and with that, the size of your virtual memory. The registered version
  38.     allows you one Giga(!)byte, while the demo-version has a limitation of
  39.     one Megabyte. Refer to  register.doc  about  copyright  questions  and
  40.     getting  a  registered user. You can also select number of 32K-buffers
  41.     in your real RAM, where more means higher speed.
  42.  
  43.        To run HDMem, you need the following configuration: Amiga  3000  or
  44.     Amiga  2000  with 68030 or 68020+68851. 68040-users have PP (persönli­
  45.     ches Pech, ask a german what this means). HDMem  adds  its  ram  above
  46.     $80000000,  so  there must not be a ram card at this location. Another
  47.     thing you need is Kickstart 2.0, exec version V37 or higher.  A  hard-
  48.     disk  drive  is  useful, but if you really want to, you can locate the
  49.     file on a normal disk-drive. As HDMem uses the MMU, you cannot run  it
  50.     simultaneously  with programs like the Enforcer. But I have added com­
  51.     patibility for the CPU FASTROM command because this one really increa­
  52.     ses the speed of your Amiga.
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.     The unregistered version comes with the following files:
  61.  
  62.     hdmem.library - copy this to the LIBS:-directory of your Harddisk. The
  63.     library contains the complete virtual memory handler.
  64.  
  65.     HDMem - this is the command to start the virtual memory. It allows you
  66.     to select the size, the file and the priority the memory is added to
  67.     the system. C: might be a good destination.
  68.  
  69.     hdmem.doc - you read this one right now!
  70.  
  71.     register.doc - A text file which contains information about how get­
  72.     ting a registered user.
  73.  
  74.     gurus.doc - A list of the alerts created
  75.  
  76.  
  77.     ›[32;40mFeatures of the HDMem package:›[0m
  78.  
  79.     ›[32;40m-up to 1 Gigabyte of virtual memory (registered version)›[0m
  80.     ›[32;40m-choosable number of buffers›[0m
  81.     ›[32;40m-special algorithm which detects the less used buffer when a change is›[0m
  82.     ›[32;40m required›[0m
  83.     ›[32;40m-only buffers that have got modified will be written to the file›[0m
  84.     ›[32;40m-you can select which tasks get virtual memory and which ones not›[0m
  85.  
  86.  
  87.        HDMem is designed to supply memory for data - not for instructions.
  88.     Therefore, the memory is not added as  public  memory,  but  with  the
  89.     attributes MEMF_FAST (4) and MEMF_VIRTUAL (8). So, every program which
  90.     requests  MEMF_  FAST or MEMF_ANY will get the virtual memory. Message
  91.     ports, task structures or program code itself will  not  be  allocated
  92.     there  as the operating system requests MEMF_PUBLIC for this. The rea­
  93.     son to do this is the following: When the task  which  causes  a  side
  94.     change  is  currently  running  in  supervisor  mode,  the system will
  95.     hang. This can happen if f.e. a sound sampling program  is  in  super­
  96.     visor  mode for speed reasons and writes to virtual memory. The opera­
  97.     ting system will be patched that no tasks or interrupts  with  headers
  98.     located  in  virtual  memory become active. If a program always fails,
  99.     you can remove it from the compatibility list. MEMF_VIRTUAL  is    not
  100.     registered at CATS till now - but I hope it will become.
  101.  
  102.        When starting HDMem the operating system is patched  that  task  or
  103.     interrupt structures located in virtual memory will not be added. The­
  104.     re exist special recoverable alerts to report when this happens.
  105.  
  106.        About the side changing problem in supervisor mode: In  the  excep­
  107.     tion  routine,  HDMem  normally returns to user mode and takes control
  108.     over the task that caused the exception.  It  creates  a  message  and
  109.     sends it to the HDMem server task. That task will change the sides and
  110.     reply  the  message.  After  this, the command which caused the excep­
  111.     tion will be re-executed. When your Amiga was in supervisor  mode,  it
  112.     is  not  known  if the exception is caused from a task or an interrupt
  113.     that cannot be stopped. Therefore, I have  added  an  (deadend)  alert
  114.     which  will let you know when this happens. This task MUST be added to
  115.     the incompatibility list.
  116.  
  117.  
  118.  
  119.  
  120.     How to start HDMem
  121.  
  122.     The command to activate virtual memory is the HDMem command. It has
  123.     the following syntax:
  124.  
  125.     HDMem FILE/A,BLOCKS/N/A,BUFS/N/A,PRI/N,FILELIST/K,DEBUG/S
  126.  
  127.        The first four parameters must be given. FILE  is  a  string  which
  128.     contains  the  name  of the file used to store the sides, f.e. dh2:da­
  129.     tei. BLOCKS is the number of 32K-blocks  your  virtual  memory  should
  130.     contain,  32 Blocks are 32*32K=1024 KBytes. Remember that the unregis­
  131.     tered version is limited to 63 blocks. BUFS is a  numerical  argument,
  132.     too.  It  sets  the  number of 32K-buffers in YOUR memory to store the
  133.     virtual blocks. The more you use,  the  better.  When  using  a  large
  134.     amount  of  virtual memory, at leat 32 buffers are recommended. In the
  135.     unregistered version, 8 should be enough. If  you  specify  less  than
  136.     four  buffers,  HDMem  increases this to 4. The PRI argument allow you
  137.     to set the priority with which to memory is added to the system. -5 is
  138.     best, you should not set HDMem to highest priority due to a bug in DOS
  139.     that I did not patch till now.
  140.  
  141.     Example: HDMem dh2:datei 63 8 -5
  142.  
  143.     (adds 2016 KB memory, 256 KB buffer with priority of -5 to system)
  144.  
  145.        The FILELIST parameter is optional. It allows you to use your  spe­
  146.     cial file of incompatible tasks instead of the default, ErrTaskList or
  147.     S:ErrTaskList.  The  syntax  is:  FILELIST=datei. You must specify the
  148.     FILELIST key here.
  149.  
  150.        The last parameter, DEBUG, is just a switch. When specified,  HDMem
  151.     does  not  add  the  memory to system. This is mainly for MY debugging
  152.     purposes, but I did not remove the argument as you might need it.
  153.  
  154.     Example: HDMem dh2:datei 63 8 -5 FILELIST=S:Tasks DEBUG
  155.  
  156.     (not really useful because FILELIST is not needed when DEBUG active)
  157.  
  158.        The following errors can be reported from HDMem:
  159.  
  160.     Cannot open hdmem.library V2.0: The hdmem.library is not in your actu­
  161.     al directory or in the LIBS:-drawer.
  162.  
  163.     MMU-initialisation failed: Your MMU is in use. This happens when HDMem
  164.     has been installed before or some MMU tools like the Enforcer are  ac-
  165.     tive. Remember that the CPU FastROM command is supported.
  166.  
  167.     hdmem.library reported error: Happens normally only when the file can­
  168.     not be created.
  169.  
  170.     Argument parsing error: You have entered something wrong.
  171.  
  172.     Incompatible task file not found: This is shown when you specify a in-
  173.     compatible task file of your own which cannot be found.
  174.  
  175.        Once started, HDMem cannot be removed from the system. You have  to
  176.     reset to do this.
  177.  
  178.  
  179.  
  180.     The incompatible task list:
  181.  
  182.        This is an ascii list in which you can specify  the  programs  that
  183.     won't  get  any  virtual  memory.  It might be useful if you have some
  184.     software that causes gurus which are specified in gurus.doc. It  is  a
  185.     simple  ascii file which has a task name in every single line. The na­
  186.     mes are not case significant. All tasks listed there will allocate pu­
  187.     blic memory only. If you don't specify your  own  list  in  the  HDMem
  188.     command, there are two default lists: ErrTaskList in the actual direc­
  189.     tory  and  S:ErrTaskList. Only one of them will be opened, the file in
  190.     your current directory has higher priority than  the  one  in  S:.  If
  191.     you specify a file, it will always be used.
  192.  
  193.        Remember that neither CLI processes nor tasks with a priority >=  5
  194.     will get virtual memory. This is done for a OS incompatibility and for
  195.     problems  that  might arise if the filesystem you are running HDMem on
  196.     tries to allocate virtual memory (=deadlock).
  197.  
  198.     Bug reports:
  199.  
  200.        HDMem has been tested thoroughly, but there  might  still  be  some
  201.     bugs.  To  report them, send the following informations to me: Version
  202.     of HDMem command, version of hdmem.library.  These  can  be  extracted
  203.     with  the  OS2.0 version command. Also, I need to know something about
  204.     your configuration ect. You can find my address  in  the  register.doc
  205.     file.
  206.  
  207.     Things I want to improve soon:
  208.  
  209.     -start from workbench
  210.     -patching & fixing the DOS bug
  211.     -using a complete partition for HDMem
  212.     -things you suggest to me
  213.  
  214.  
  215.     ----------------------------------------------------------------------
  216.  
  217.                                                        Stefan Rompf
  218.  
  219.  
  220.  
  221. ›[0m›[1 p